Troubleshooting
argocd admin notifications
is a CLI command group that helps to configure the controller settings and troubleshoot issues. Full command details are available in the command reference.
Global flags
The following global flags are available for all sub-commands:
--config-map
- path to the file containingargocd-notifications-cm
ConfigMap. If not specified then the command loadsargocd-notification-cm
ConfigMap using the local Kubernetes config file.--secret
- path to the file containingargocd-notifications-secret
ConfigMap. If not specified then the command loadsargocd-notification-secret
Secret using the local Kubernetes config file. Additionally, you can specify:empty
to use empty secret with no notification service settings.
Examples:
Get a list of triggers configured in the local config map:
argocd admin notifications trigger get \
--config-map ./argocd-notifications-cm.yaml --secret :empty
Trigger notification using in-cluster config map and secret:
argocd admin notifications template notify \
app-sync-succeeded guestbook --recipient slack:argocd admin notifications
Kustomize
If you are managing argocd-notifications
config using Kustomize you can pipe whole kustomize build
output into stdin using --config-map -
flag:
kustomize build ./argocd-notifications | \
argocd-notifications \
template notify app-sync-succeeded guestbook --recipient grafana:argocd \
--config-map -
How to get it
On your laptop
You can download the argocd
CLI from the GitHub release attachments.
The binary is available in the quay.io/argoproj/argocd
image. Use the docker run
and volume mount to execute binary on any platform.
Example:
docker run --rm -it -w /src -v $(pwd):/src \
quay.io/argoproj/argocd:<version> \
/app/argocd admin notifications trigger get \
--config-map ./argocd-notifications-cm.yaml --secret :empty
In your cluster
SSH into the running argocd-notifications-controller
pod and use kubectl exec
command to validate in-cluster configuration.
Example
kubectl exec -it argocd-notifications-controller-<pod-hash> \
/app/argocd admin notifications trigger get
Commands
The following commands may help debug issues with notifications:
- argocd admin notifications template get
- argocd admin notifications template notify
- argocd admin notifications trigger get
- argocd admin notifications trigger run
Errors
Failed to parse new settings
error converting YAML to JSON
YAML syntax is incorrect.
incorrect:
apiVersion: v1
kind: ConfigMap
metadata:
name: argocd-notifications-cm
data:
service.slack: |
token: $slack-token
icon: :rocket:
correct:
apiVersion: v1
kind: ConfigMap
metadata:
name: argocd-notifications-cm
data:
service.slack: |
token: $slack-token
icon: ":rocket:"
service type ‘xxxx’ is not supported
You need to check your argocd-notifications controller version. For instance, the teams integration is to support v1.1.0
and more.
Failed to notify recipient
notification service ‘xxxx’ is not supported
You have not defined xxxx
in argocd-notifications-cm
or to fail to parse settings.
config referenced xxx, but key does not exist in secret
- If you are using a custom secret, check that the secret is in the same namespace
- You have added the label:
app.kubernetes.io/part-of: argocd
to the secret - You have tried restarting argocd-notifications controller
Example:
Secret:
apiVersion: v1
kind: Secret
metadata:
name: argocd-slackbot
namespace: <the namespace where argocd is installed>
labels:
app.kubernetes.io/part-of: argocd
type: Opaque
data:
slack-token: <base64encryptedtoken>
ConfigMap
apiVersion: v1
kind: ConfigMap
metadata:
name: argocd-notifications-cm
data:
service.slack: |
token: $argocd-slackbot:slack-token